// Static walls linked list structure
// Used for adding to from map class, and for deleting on map change

#ifndef WALLS_H_INCLUDED
#define WALLS_H_INCLUDED

using namespace std;

#include "energy_state.h"

struct wall_data
{
// centre of rectangular wall
float x; 
float y;
// extent from centre
float half_width;
float half_height;
energy_state state;
wall_data *next;
};

class Wall_List
{
    public:
        wall_data *first;
        wall_data *current;
        Wall_List(void);
        // Debugging commands       
        void print_current();
        void print_all();
        // Empty the list
        void empty_list();
        // Iterate through list
        void start();
        void next();
        // Add a new wall to the list
        void add_wall(float x, float y, float half_width, float half_height, float temperature, float heat_conductivity);
        ~Wall_List();
    private:
        wall_data *temp;
};

#endif // WALLS_H_INCLUDED
